Skip to content

fix: resolve 11 issues from full project review#13

Merged
Detair merged 1 commit into
masterfrom
fix/full-project-review
Feb 7, 2026
Merged

fix: resolve 11 issues from full project review#13
Detair merged 1 commit into
masterfrom
fix/full-project-review

Conversation

@Detair

@Detair Detair commented Feb 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • 3 critical fixes: NIH-plug style called every frame, LV2 threshold port broken by hardcoded dynamic threshold, GlobalHotKeyManager panic on init failure
  • 4 important fixes: reference device not persisted in config, NIH-plug mono output discarding right channel, VAD allocation on real-time audio thread, reference device error silently swallowed
  • 4 suggestions: named processing threads, cached EQ/AGC atomics per-frame, eprintln replaced with log::warn in echo canceller

Test plan

  • cargo check passes
  • cargo test — all 16 tests pass
  • Verify NIH-plug plugin loads correctly in a DAW (style applied once)
  • Verify LV2 threshold control port responds in host
  • Verify app starts without panic when hotkey manager unavailable (e.g. headless)
  • Verify reference device selection persists across app restart

🤖 Generated with Claude Code

Critical:
- Move NIH-plug theme setup from render callback to init callback (perf)
- Fix LV2 dynamic_threshold=true making threshold port useless
- Handle GlobalHotKeyManager init failure gracefully instead of panic

Important:
- Persist reference device selection in config across restarts
- Mix (L+R)/2 for NIH-plug mono output instead of discarding right channel
- Pre-create all 4 VAD instances to avoid allocation on audio thread
- Log reference device enumeration errors instead of silently swallowing

Suggestions:
- Name audio processing threads for easier debugging
- Cache eq_enabled/agc_enabled per-frame in process_updates()
- Replace eprintln with log::warn in echo_cancel.rs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Detair Detair merged commit 9ad72ba into master Feb 7, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant